package com.legal.aid.app.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.legal.aid.common.annotation.Excel;

import java.io.Serializable;
import java.util.Date;

/**
 * 评论表
 */
public class CommentVo implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 评论ID */
    @Excel(name = "评论ID")
    private Long commentId;

    /** 目标ID（新闻ID、案例ID等） */
    @Excel(name = "目标ID")
    private Integer targetId;

    /** 目标类型 */
    @Excel(name = "目标类型")
    private String targetType;

    /** 评论用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 评论用户名称 */
    @Excel(name = "用户名")
    private String userName;

    /** 用户头像URL */
    @Excel(name = "用户URL")
    private String userAvatar;

    /** 评论内容 */
    @Excel(name = "评论内容")
    private String commentContent;

    @Excel(name = "点赞数")
    private Integer likeCount;

    /** 是否已点赞（0-否，1-是） */
    @Excel(name = "是否已点赞", readConverterExp = "0=否,1=是")
    private String isLiked;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "评论时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date commentTime;

    /** 是否删除（0-否，1-是） */
    @Excel(name = "是否删除", readConverterExp = "0=否,1=是")
    private String isDeleted;

    /** 是否审核通过（0-未通过，1-已通过） */
    @Excel(name = "是否审核通过", readConverterExp = "0=未通过,1=已通过")
    private String isApproved;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedTime;

    public Long getCommentId() {
        return commentId;
    }

    public void setCommentId(Long commentId) {
        this.commentId = commentId;
    }

    public Integer getTargetId() {
        return targetId;
    }

    public void setTargetId(Integer targetId) {
        this.targetId = targetId;
    }

    public String getTargetType() {
        return targetType;
    }

    public void setTargetType(String targetType) {
        this.targetType = targetType;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserAvatar() {
        return userAvatar;
    }

    public void setUserAvatar(String userAvatar) {
        this.userAvatar = userAvatar;
    }

    public Long getUserId() {
        return userId;
    }

    @Override
    public String toString() {
        return "CommentVo{" +
                "commentId=" + commentId +
                ", targetId=" + targetId +
                ", targetType=" + targetType +
                ", userId=" + userId +
                ", userName='" + userName + '\'' +
                ", userAvatar='" + userAvatar + '\'' +
                ", commentContent='" + commentContent + '\'' +
                ", likeCount=" + likeCount +
                ", isLiked='" + isLiked + '\'' +
                ", commentTime=" + commentTime +
                ", isDeleted='" + isDeleted + '\'' +
                ", isApproved='" + isApproved + '\'' +
                ", createdTime=" + createdTime +
                ", updatedTime=" + updatedTime +
                '}';
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getCommentContent() {
        return commentContent;
    }

    public void setCommentContent(String commentContent) {
        this.commentContent = commentContent;
    }

    public Integer getLikeCount() {
        return likeCount;
    }

    public void setLikeCount(Integer likeCount) {
        this.likeCount = likeCount;
    }

    public Date getCommentTime() {
        return commentTime;
    }

    public void setCommentTime(Date commentTime) {
        this.commentTime = commentTime;
    }

    public String getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(String isDeleted) {
        this.isDeleted = isDeleted;
    }

    public String getIsApproved() {
        return isApproved;
    }

    public void setIsApproved(String isApproved) {
        this.isApproved = isApproved;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public Date getUpdatedTime() {
        return updatedTime;
    }

    public void setUpdatedTime(Date updatedTime) {
        this.updatedTime = updatedTime;
    }

    public String getIsLiked() {
        return isLiked;
    }

    public void setIsLiked(String isLiked) {
        this.isLiked = isLiked;
    }

}